package com.zhoux.others;

import java.util.Random;

/**
 * @author taoyi
 * @version 1.0
 * @date 2021/3/12 10:50
 *
 * 本类用于封装士兵相关的属性和方法
 * 封装一个"类"组件
 */
// 1.创建一个士兵类
public class Soldier {
    // 2.定义属性
    private int id; // 定义编号
    private int blood; // 定义血量
    private Ak47 ak47; // 定义武器

    // 定义成员方法
    public void go() {
        System.out.println(this.id + "号士兵正在前进！");
    }

    // 定义攻击方法
    public boolean attack() {
        if (blood == 0) {
            System.out.println(id + "号士兵已经死亡啦！");
            return false;
        }
        // 模拟进攻掉血
        // 1.生成一个随机数来表示丢失的血量
        Random random = new Random();
        int lost = random.nextInt(20); //[0,10)
        if (blood < lost) {
            blood = 0;
            System.out.println(this.id + "号士兵死亡!");
            return false;
        } else {
            blood -= lost;
            System.out.println(this.id + "号士兵受到" + lost + "点伤害，还剩" + this.blood + "血量！");
            return true;
        }
    }



    public Soldier() {
    }

    public Soldier(int id, int blood,Ak47 ak47) {
        this.id = id;
        this.blood = blood;
        this.ak47 = ak47;
    }

    public Ak47 getAk47() {
        return ak47;
    }

    public void setAk47(Ak47 ak47) {
        this.ak47 = ak47;
    }

    public int getId() {
        return id;
    }

    public int getBlood() {
        return blood;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setBlood(int blood) {
        this.blood = blood;
    }
}
